package com.projet.glb2r.DAO;

import java.util.ArrayList;

import com.projet.glb2r.Base_et_Provider.Provider;
import com.projet.glb2r.Base_et_Provider.TableProduitsFactures;
import com.projet.glb2r.Objet.ObjetProduit;
import com.projet.glb2r.Objet.ObjetProduitsFactures;

import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;

public class DAOProduitsFactures {
	private ArrayList <Integer> tabId = new ArrayList<Integer>();
	private DAOProduit produitDAO; 
	private final String ROWID = "ROWID";

	//	enum Description{
	//		PRODUIT("produit"),
	//		TACHE("tache");
	//		
	//		private final String description;
	//		Description(String description){
	//			this.description = description;
	//		}
	//		
	//		public String getDescription(){
	//			return description;
	//		}
	//	};


	public void insererProduits(ObjetProduitsFactures listeProduits, ObjetProduitsFactures listeTaches, ContentResolver contentresolver){
		for(int i=0; i<listeProduits.getProduitsQte().size(); i++ ){  // Utiliser les iterator
			if(listeProduits.getProduitsQte().get(listeProduits.getProduitsFactures().get(i)) == null){
				//produitDAO.insert(listeProduits.getProduitsFactures().get(i), contentresolver);
			}
			insert(listeProduits.getProduitsFactures().get(i), contentresolver);
			int rowid = getDernierIdProduitFacture(contentresolver);
			tabId.add(rowid);
		}
		for(int i=0; i<listeTaches.getProduitsQte().size(); i++ ){  // Utiliser les iterator
			if(listeTaches.getProduitsQte().get(listeTaches.getProduitsFactures().get(i)) == null){
				//produitDAO.insert(listeProduits.getProduitsFactures().get(i), contentresolver);
			}
			insert(listeTaches.getProduitsFactures().get(i), contentresolver);
			int rowid = getDernierIdProduitFacture(contentresolver);
			tabId.add(rowid);
		}
	}

	private void insert(ObjetProduit produit, ContentResolver contentresolver) {
		ContentValues values = new ContentValues();
		values.put(TableProduitsFactures.KEY_QUANTITE, produit.getQuantite());
		values.put(TableProduitsFactures.KEY_ID_PRODUIT, produit.getIdProduit());
		contentresolver.insert(Provider.CONTENT_URI_PRODUITSFACTURES, values);
	}

	public void delete(ContentResolver contentResolver) {
		String id = "diouf";
		System.out.println("Client deleted with nom: " + id);
		contentResolver.delete(Provider.CONTENT_URI_CLIENT, ROWID
				+ " = ' " + id , null);
	}

	public ArrayList<Integer> getTabId(){
		return tabId;
	}


	private int getDernierIdProduitFacture(ContentResolver contentResolver) {

		Cursor cursor = contentResolver.query(Provider.CONTENT_URI_PRODUITSFACTURES, new String[]{ROWID}, null,null, null);
		cursor.moveToFirst();
		int idProduit = cursor.getCount();
		cursor.close();
		return idProduit;
	}

	public ObjetProduitsFactures getProduitFacture(int id, ContentResolver contentResolver) {

		Cursor cursor = contentResolver.query(Provider.CONTENT_URI_PRODUITSFACTURES, new String[]{ROWID, TableProduitsFactures.KEY_QUANTITE, TableProduitsFactures.KEY_ID_PRODUIT}, " rowid = ?",new String[]{""+id}, null);
		cursor.moveToFirst();
		ObjetProduitsFactures prodFact = cursorToProduitsFactures(cursor);
		cursor.close();
		return prodFact;
	}

	private ObjetProduitsFactures cursorToProduitsFactures(Cursor cursor) {
		ObjetProduitsFactures prodFact = new ObjetProduitsFactures();
		prodFact.setIdProduitsFactures(cursor.getInt(0));
		//		prodFact.(cursor.getString(1));
		return prodFact;
	}


}
